//注意：导航 依赖 element 模块，否则无法进行功能性操作
layui.use(['element','carousel', 'layer', 'laypage', 'util'],  function(){
    // 'element', 'carousel', 'util',
    var $ = layui.jquery;
    var element = layui.element; // 用于显示栏目二级下拉框
    var layer = layui.layer;
    var carousel = layui.carousel;
    var laypage = layui.laypage
    $(document).ready(function(ev) {
        // 时间中文显示库
        moment.defineLocale('zh-cn', {
            months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
            monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
            weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
            weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
            weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
            longDateFormat : {
                LT : 'Ah点mm分',
                LTS : 'Ah点m分s秒',
                L : 'YYYY-MM-DD',
                LL : 'YYYY年MMMD日',
                LLL : 'YYYY年MMMD日Ah点mm分',
                LLLL : 'YYYY年MMMD日ddddAh点mm分',
                l : 'YYYY-MM-DD',
                ll : 'YYYY年MMMD日',
                lll : 'YYYY年MMMD日Ah点mm分',
                llll : 'YYYY年MMMD日ddddAh点mm分'
            },
            meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
            meridiemHour: function (hour, meridiem) {
                if (hour === 12) {
                    hour = 0;
                }
                if (meridiem === '凌晨' || meridiem === '早上' ||
                    meridiem === '上午') {
                    return hour;
                } else if (meridiem === '下午' || meridiem === '晚上') {
                    return hour + 12;
                } else {
                    // '中午'
                    return hour >= 11 ? hour : hour + 12;
                }
            },
            meridiem : function (hour, minute, isLower) {
                var hm = hour * 100 + minute;
                if (hm < 600) {
                    return '凌晨';
                } else if (hm < 900) {
                    return '早上';
                } else if (hm < 1130) {
                    return '上午';
                } else if (hm < 1230) {
                    return '中午';
                } else if (hm < 1800) {
                    return '下午';
                } else {
                    return '晚上';
                }
            },
            calendar : {
                sameDay : function () {
                    return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';
                },
                nextDay : function () {
                    return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';
                },
                lastDay : function () {
                    return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';
                },
                nextWeek : function () {
                    var startOfWeek, prefix;
                    startOfWeek = moment().startOf('week');
                    prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
                    return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
                },
                lastWeek : function () {
                    var startOfWeek, prefix;
                    startOfWeek = moment().startOf('week');
                    prefix = this.unix() < startOfWeek.unix()  ? '[上]' : '[本]';
                    return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
                },
                sameElse : 'LL'
            },
            ordinalParse: /\d{1,2}(日|月|周)/,
            ordinal : function (number, period) {
                switch (period) {
                    case 'd':
                    case 'D':
                    case 'DDD':
                        return number + '日';
                    case 'M':
                        return number + '月';
                    case 'w':
                    case 'W':
                        return number + '周';
                    default:
                        return number;
                }
            },
            relativeTime : {
                future : '%s内',
                past : '%s前',
                s : '几秒',
                m : '1 分钟',
                mm : '%d 分钟',
                h : '1 小时',
                hh : '%d 小时',
                d : '1 天',
                dd : '%d 天',
                M : '1 个月',
                MM : '%d 个月',
                y : '1 年',
                yy : '%d 年'
            },
            week : {
                // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
                dow : 1, // Monday is the first day of the week.
                doy : 4  // The week that contains Jan 4th is the first week of the year.
            }
        });
        // 处理时间显示几分钟前 几天前等
        $(".timeType").each(function( index ) {
            $(this).text(timeType($(this).text()))
        });
        // 站点运行时间
        $('#runTime').text(moment().diff(moment($('#addTime').text()), 'day')+'天');
        var siteUrl = window.location.pathname;
        // 如果是详情页
        if(siteUrl.indexOf("/detail") !== -1) {
            var id = $('.diggit').attr('data_id');
            var pages = 0;
            var page = 1;
            // 点赞
            $('.diggit').click(function () {
                var likeCookie = document.cookie;
                if (likeCookie.indexOf('like'+id+'='+id) !== -1) {
                    layer.msg('您今天已经点过赞哦！');
                    return; //存在cookie
                } else {
                    $.ajax({
                        url:"/likeClick/like",
                        type: 'get',
                        data:{
                            id: id
                        },
                        success:function(res){
                            if(res.code === 1) {
                                $('#likeNum').text(res.data.likenum);
                                layer.msg('感谢您的认可！我会继续努力...');
                                var Days = 1; // 过期时间1天 12小时
                                var exp = new Date();
                                exp.setTime(exp.getTime() + Days*12*60*60*1000); // Days*24*60*60*1000为一天
                                document.cookie = 'like'+id + "="+id+";expires=" + exp.toGMTString();
                            } else {
                                layer.msg('点赞失败！稍后再试');
                            }
                        }
                    })
                }
            })
            // 获取/刷新评论列表
            $('#update').click(function () {
                getPl(page);
            })
            getPl(1);
            function getPl(page1) {
                page = page1
                $.ajax({
                    url:"/commentReply/index",
                    type: 'get',
                    data:{
                        wid: id,
                        page: page1,
                    },
                    success:function(res){
                        if(res.code === 1) {
                            var list = res.data.list;
                            pages = res.data.count;
                            if(list.length>0){
                                $('#pinglunUl').empty();
                                for (let i = 0; i < list.length; i++) {
                                    var img = '/static/blog/img/user/default.png';
                                    var cityName = '未知城市';
                                    if(list[i].img) {
                                        img = list[i].img
                                    }
                                    if(list[i].cityName) {
                                        cityName = list[i].cityName
                                    }
                                    $('#pinglunUl').append(
                                        '<li class="flexC">'+
                                            '<div class="flexR">'+
                                                '<img src="'+img+'" alt="">'+
                                                '<div class="flexC">'+
                                                    '<div class="flexR">' +
                                                        '<span>'+list[i].name+'</span><span style="margin-left: 5px;font-size: 12px">'+cityName+'</span>'+
                                                    '</div>'+
                                                    '<span>'+timeType(list[i].createTime)+'</span>'+
                                                '</div>'+
                                            '</div>'+
                                            '<div class="flexR">'+list[i].content+'</div>'+
                                            '<div class="flexR">'+
                                                '<span class="zan flexR" data_id="'+list[i].id+'">'+
                                                    '<span></span>'+
                                                    '<span>'+list[i].likenum+'</span>'+
                                                '</span>'+
                                                '<span class="msg flexR" data_userName="'+list[i].name+'">'+
                                                    '<span></span>'+
                                                    '<span>回复</span>'+
                                                '</span>'+
                                            '</div>'+
                                        '</li>'
                                    )
                                }
                                // 渲染分页
                                laypage.render({
                                    elem: 'page'
                                    ,count: pages //数据总数
                                    ,limit: 5
                                    ,curr: page1
                                    ,jump: function(obj, first){
                                        if(!first) {
                                            getPl(obj.curr);
                                        }
                                    }
                                });
                                // 回复或新增评论
                                $('.msg').click(function () {
                                    var userName = $(this).attr("data_userName");
                                    if(editor.txt.html() === '<p><br></p>' || editor.txt.html() === '<span>文明上网 理性发言</span>') {
                                        editor.txt.html('<i>@</i><span class="userName">'+userName+'</span><span>&nbsp;&nbsp;</span>');
                                    } else {
                                        editor.txt.append('<i>@</i><span class="userName">'+userName+'</span><span>&nbsp;&nbsp;</span>');
                                    }
                                })
                                // 点赞
                                $('.zan').click(function () {
                                    var self = this;
                                    var plid = $(this).attr("data_id");
                                    var plzanCookie = document.cookie;
                                    if (plzanCookie.indexOf('plzan'+plid+'='+plid) !== -1) {
                                        layer.msg('您今天已经点过赞哦！');
                                        return; //存在cookie
                                    }
                                    $.ajax({
                                        url:"/commentReply/like",
                                        type: 'get',
                                        data:{
                                            id: plid
                                        },
                                        success:function(res){
                                            if(res.code === 1) {
                                                $(self).find("span:eq(1)").text(res.data.likenum);
                                                var Days = 1; // 过期时间1天 12小时
                                                var exp = new Date();
                                                exp.setTime(exp.getTime() + Days*12*60*60*1000); // Days*24*60*60*1000为一天
                                                document.cookie = 'plzan'+plid + "="+plid+";expires=" + exp.toGMTString();
                                            }
                                        }
                                    })
                                })
                            }
                        }
                    }
                })
            }
            // 提交评论
            $('#fasong').click(function () {
                var pladdCookie = document.cookie;
                if (pladdCookie.indexOf('pladd'+id+'='+id) !== -1) {
                    layer.msg('太快了！请稍等5分钟再回复哦...');
                    return;
                }
                if (!$('#name').val().trim()) {
                    layer.msg('请填写您的昵称');
                    return;
                }
                if(editor.txt.html() === '<p><br></p>') {
                    layer.msg('您没有想说的吗？');
                    return;
                }
                $('#fasong').hide();
                $('#fasongStatus').show();
                $.ajax({
                    url:"/commentReply/add",
                    type: 'post',
                    data:{
                        wid: id,
                        fid: 0,
                        content: editor.txt.html(),
                        name: $('#name').val(),
                        // img: id,
                    },
                    success:function(res){
                        if(res.code === 1) {
                            layer.msg('发送成功！请等待博主审核...');
                            getPl(1);
                            $('#fasongStatus').hide();
                            $('#fasong').show();
                            editor.txt.html('');
                            var exp = new Date();
                            exp.setTime(exp.getTime() + 5*60*1000); // 5分钟后才可以发送
                            document.cookie = 'pladd'+id + "="+id+";expires=" + exp.toGMTString();
                        }
                    }
                })
            })
            // 阅读量 自动增加
            getRead();
            function getRead(){
                var clickCookie = document.cookie;
                if (clickCookie.indexOf('click'+id+'='+id) !== -1) {
                    return; //存在cookie
                } else {
                    $.ajax({
                        url:"/likeClick/click",
                        type: 'get',
                        data:{
                            id: id
                        },
                        success:function(res){
                            if(res.code === 1) {
                                var Days1 = 1; // 过期时间1天 12小时
                                var exp1 = new Date();
                                exp1.setTime(exp1.getTime() + Days1*12*60*60*1000);
                                document.cookie = 'click'+id + "="+id+";expires=" + exp1.toGMTString();
                            }
                        }
                    })
                }
            };
        }
    });
    // 无线端导航
    $(".mobile-inner-header-icon").click(function(){
        $(this).toggleClass("mobile-inner-header-icon-click mobile-inner-header-icon-out");
        $(".mobile-inner-nav").slideToggle(250);
    });
    $(".mobile-inner-nav a").each(function( index ) {
        $( this ).css({'animation-delay': (index/10)+'s'});
        $( this ).click(function () {
            $('.mobile-inner-header-icon').toggleClass("mobile-inner-header-icon-click mobile-inner-header-icon-out");
            $('.mobile-inner-nav').hide();
        })
    });
    // 全局点击隐藏导航
    $('article').click(function () {
        $('.mobile-inner-header-icon').toggleClass("mobile-inner-header-icon-out");
        $('.mobile-inner-nav').hide();
    })
    // 无线端导航 end
    //建造实例
    carousel.render({
        elem: '#carousel'
        ,width: '100%' //设置容器宽度
        ,arrow: 'hover' //显示箭头
    });

    // 处理时间显示
    function timeType (data) {
        if (data) {
            return  moment(data,'YYYY-MM-DD HH:mm').startOf('minutes').fromNow(true)+'前'
        }
    }
    // 显示回到顶部按钮
    var util = layui.util;
    //执行
    util.fixbar({
        // bar1: true
        click: function(type){
            /* console.log(type);
             if(type === 'bar1'){
                 alert('点击了bar1')
             }*/
        }
    });
})